// 导入游戏引擎
import Game from './js/core/Game.js';
// 确保weapp-adapter已导入
import { canvas, ctx } from './js/libs/weapp-adapter.js';

// 确保canvas已经创建
function ensureCanvas() {
  // 验证canvas是否存在
  if (!canvas) {
    console.error('Canvas no existe, intentando crear uno');
    try {
      return wx.createCanvas();
    } catch (error) {
      console.error('Error al crear canvas:', error);
      return null;
    }
  }
  return canvas;
}

// 打印canvas信息
function debugCanvas(canvas) {
  if (!canvas) {
    console.error('Canvas es null');
    return;
  }
  
  console.log('Canvas info:', {
    width: canvas.width,
    height: canvas.height,
    context: canvas.getContext ? 'available' : 'not available'
  });
}

// 游戏初始化
console.log('游戏初始化...');

// 导入兼容性适配代码，确保基础对象存在
try {
  if (typeof wx === 'undefined') {
    console.warn('wx 对象不存在，可能不在微信环境中');
  } else {
    console.log('微信环境检测正常');
    console.log('wx.getSystemInfoSync:', typeof wx.getSystemInfoSync === 'function');
    console.log('wx.getWindowInfo:', typeof wx.getWindowInfo === 'function');
    console.log('wx.createCanvas:', typeof wx.createCanvas === 'function');
    
    // 确保canvas已创建并有效
    const gameCanvas = ensureCanvas();
    debugCanvas(gameCanvas);
  }
} catch (error) {
  console.error('环境检测失败:', error);
}

// 确保可以获取系统信息
let systemInfo = null;
try {
  systemInfo = wx.getSystemInfoSync();
  console.log('系统信息:', systemInfo);
} catch (error) {
  console.error('获取系统信息失败:', error);
  systemInfo = {
    windowWidth: 414,
    windowHeight: 896,
    pixelRatio: 3
  };
  console.warn('使用默认系统信息:', systemInfo);
}

// 创建并启动游戏
try {
  console.log('创建游戏实例...');
  const game = new Game();
  
  // 添加全局错误处理
  wx.onError((error) => {
    console.error('全局错误:', error);
    if (game && game.state === 'running') {
      game.showErrorRecoveryUI('发生错误，点击继续', () => {
        game.state = 'running';
      });
    }
  });
  
  console.log('启动游戏...');
  game.start();
} catch (error) {
  console.error('游戏启动失败:', error);
} 